import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

let defaultCity = '上海'

try {
    if(localStorage.city)
        defaultCity = localStorage.city
} catch (e) {
    
}

export default new Vuex.Store({//导出一个Vuex创建的仓库
    state:{//state中存放全局公用的一些东西
        city: defaultCity
        //使用localStorage需要抛异常，如果某些浏览器开启了隐身或者清除了缓存，有可能导致代码错误
    },
    actions:{
        changeCity(ctx,city){
            ctx.commit('changeCity',city)
        }
    },
    mutations:{
        changeCity(state,city){
            state.city = city
            try {
                localStorage.city = city
            } catch (error) {
                
            }
        }
    }
    //组件中使用dispatch调用actions,action中使用commit调用mutations,mutations中改变state中的数据
    //组件中也可以直接使用commit方法调用mutations,之后修改数据
});